package hot_100;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: Darven
 * @createTime: 2025-09-25  23:43
 * @description: TODO
 */
public class P189 {
    public static void main(String[] args) {

    }

    //    public void rotate(int[] nums, int k) {
//        // 环状替换
//
//        // 空间换时间，创建一个新数组，用来接收要移动的值，然后再将旧值添加进来
//        int[] newArr=new int[nums.length];
//        for (int i=0;i<nums.length;i++){
//            newArr[(i+k)%nums.length]=nums[i];
//        }
//        System.arraycopy(newArr, 0, nums, 0, nums.length);
//        // 原地反转
//
//
//    }
    public void rotate(int[] nums, int k) {
        // 环状替换

        // 空间换时间，创建一个新数组，用来接收要移动的值，然后再将旧值添加进来

        // 原地反转
        k=k%nums.length;
        reverse(nums, 0, nums.length-1);
        reverse(nums, 0, k-1);
        reverse(nums, k, nums.length-1);

    }
    private void reverse(int[]nums,int start,int end){
        while(start<end){
            int temp = nums[start];
            int x = nums[end];
            nums[start]=x;
            nums[end]=temp;
            start+=1;
            end-=1;
        }
    }
}
